package tree;

import java.util.LinkedList;

public class Test {
    public static void main(String[] args) {

//        System.out.println(getNumber(10,3));

        testLinked();
//        Scanner sc = new Scanner(System.in);
//        int n = sc.nextInt();
//
//        boolean[]arr=new boolean[n];
//        for(int i=0;i< arr.length;i++){
//
//                arr[i]=true;
//        }
//
//        int len=arr.length;
//        int t=0;
//        while (len>1){
//            for(int i=0;i<arr.length;i++){
//                    if(arr[i]){
//                        t++;
//                        if(t%3==0){
//                            t=0;
//                            arr[i]=false;
//                            len--;
//                        }
//
//                    }
//            }
//        }
//
//
//        for(int i=0;i<arr.length;i++) {
//            if(arr[i]) {
//                System.out.println("是"+(i+1));
//            }
//        }
    }



    public static int  getNumber(int n,int num){

        LinkedList<Integer> player=new LinkedList<>();
        for(int i=1;i<=n;i++){
            player.add(i);
        }
        while (player.size()>1){
            player.addLast(player.removeFirst());
            player.addLast(player.removeFirst());
            player.removeFirst();
            System.out.println(player);
        }

        return player.getFirst();
    }


    public static void testLinked(){
        LinkedList list = new LinkedList();
        // add() method to add elements in the list
        list.add(10);
        list.add(20);
        list.add(30);
        list.addLast(60);
        list.addFirst(9);
        list.add(40);
        list.add(50);

        //  Current list Output
        System.out.println("The Current list is:" + list);

        // Add new elements at the ending of the linkedlist

        list.addLast(70);

        //  New list Output
        System.out.println("The new List is:" + list);
//        createBinaryTree(list);
      TreeNode treeNode=  createBinaryTree(list);
        System.out.println("The new List is:" +treeNode);
        preOrder(treeNode);
    }


    public static TreeNode createBinaryTree(LinkedList<Integer> list){

        TreeNode treeNode=null;
        if(list==null||list.isEmpty()){
                return null;
        }
        Integer data=list.removeFirst();
        if(data!=null){
            treeNode=new TreeNode(data);
            treeNode.leftChild=createBinaryTree(list);
            treeNode.rightChild=createBinaryTree(list);

        }
        return treeNode;
    }


    //二叉树前序遍历
    public static void preOrder(TreeNode treeNode){
            if(treeNode==null){
                return;
            }
        System.out.printf(treeNode.data+"-");
            preOrder(treeNode.leftChild);
            preOrder(treeNode.rightChild);
    }

}
